﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Modelo
{
    [Serializable]
    public abstract class PowerUp : IColisionable
    {
        private int tamanio;
        private Posicion posicion;
        protected Mapa mapa;

        public PowerUp(int tamanio, Posicion posicion, Mapa mapa)
        {
            this.tamanio = tamanio;
            this.posicion = posicion;
            this.mapa = mapa;
        }

        public abstract void serAgarrado(Bombita elOtro);

        #region IColisionable Member
        public void recibirColision(IColisionable elOtro)
        {
            elOtro.manejarColisionCon(this);
        }

        public void manejarColisionCon(Bombita elOtro)
        {
            this.serAgarrado(elOtro);
        }

        public void manejarColisionCon(Enemigo elOtro)
        {
            //No pasa nada porque no puede agarrar un PowerUp
        }

        public void manejarColisionCon(Bomba elOtro)
        {
            //No pasa nada si una bomba colisiona con un PowerUp
        }

        public void manejarColisionCon(PowerUp elOtro)
        {
            //No pasa nada si colisionan dos powerUp aunque nunca deberia pasar.
        }

        public int getPosX()
        {
            return posicion.getX();
        }

        public int getPosY()
        {
            return posicion.getY();
        }

        public int getTamanio()
        {
            return tamanio;
        }

        #endregion
    }
}